# 搜索

# 简单搜索

# 根据 _id 搜素

GET /<index>/_doc/<_id>

# _search—pretty

使得返回的json更易查看,但是我这所有都很好看❓

GET /<index>/_doc/_search?pretty

# _search—搜索所有数据

默认返回10条数据

GET /<index>/_doc/_search

# _search—条件搜索

GET /<index>/_doc/_search?q=name:zhangsan

# zhangsan lisi 是或的关系
GET /<index>/_doc/_search?q=name:zhangsan lisi

# _search—指定响应 Field

GET /<index>/_doc/_search?_source=id,name

如不需要返回元数据,仅仅返回原始数据(查询一条文档)。过时了

GET /<index>/_doc/<_id>/_source

# HEAD—判断 Document 存在

HEAD /<index>/_doc/<_id>

根据返回的 HTTP 状态码来判断

  • 200:存在
  • 404:不存在

# 搜索结果分析

{
  "took": 72,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": 1,
    "max_score": 0.2876821,
    "hits": [
      {
        "_index": "xc_course",
        "_type": "doc",
        "_id": "4028e58161bcf7f40161bcf8b77c0000",
        "_score": 0.2876821,
        "_source": {
          "name": "Bootstrap开发框架",
          "description": "Bootstrap是由Twitter推出的一个前台页面开发框架",
          "studymodel": "201008"
        }
      }
    ]
  }
}
  • took:本次操作花费的时间,单位为毫秒
  • timed_out:请求是否超时
  • _shards:说明本次操作共搜索了哪些分片
  • hits:搜索命中的记录
  • hits.total : 符合条件的文档总数
  • hits.hits :匹配度较高的前N个文档
  • hits.max_score:文档匹配得分,这里为最高分
  • _score:每个文档都有一个匹配度得分,按照降序排列
  • _source:显示了文档的原始内容

# DSL 搜索

DSL(Domain Specifific Language)特定领域语言,以JSON请求体的形式出现